Естественно, Bluetooth не могла обойтись без такой важной вещи, как технология защиты передаваемых данных, встроенной в сам протокол. В зависимости от выполняемых задач, предусмотренно три режима защиты в которых может находится устройство.
Security mode 1 (non secure), устройство не может самостоятельно инициировать защитные процедуры.
Security mode 2 (service level enforced security), устройство не инициирует защитные процедуры пока не установлено и не настроено соединение. После того как соединение установлено, процедуры защиты обязательны, и определяются типом и требованиями используемых служб.
Security mode 3 (link level enforced security), защитные процедуры инициируются в процессе установления и настройки соединения. Если удалённое устройство не может пройти требований защиты, то соединение не устанавливается.
Естественно, что Security mode 3 и 2 могут использоваться вместе, то есть сначала устанавливается защищённое соединение, а потом оно ещё защищается в соответствии с требованиями и возможностями конкретной службы.
Основой системы безопасности Bluetooth, используемой в Security
mode 3, является понятие сеансового ключа, или Bond. Сеансовый ключ
генерируется в процессе соединения двух устройств, и используется для
идентификации и шифрования передаваемых данных. Для генерации ключа
могут использоваться самые различные составляющие, от заранее
известных обоим устройствам значений, до физических адресов
устройств. Комбинируя защиту на уровне соединения с защитой на
уровне приложений (где может использоваться абсолютно любая из
существующих на сегодня систем защиты данных) можно создавать
достаточно надёжно защищённые соединения. Но всё равно, очевидной
слабостью Bluetooth соединений с точки зрения построения защищённых
соединений остаётся возможность перехвата трафика, причём для этого
даже не придётся использовать какое-либо специфическое оборудование.
Впрочем, эта проблема не нова, и в настоящее время часто приходится
использовать открытые сети, вроде Интернет, где возможен перехват
трафика, для передачи закрытых данных.